'''
参考1.10的综合案例中的学生信息管理，来实现一个自动取款机的存取款模拟效果。
要求有登陆和退出、查询余额、取钱，存钱等操作。
'''

#自动存取款机的模拟效果


#定义一个用于存放账户信息的列表变量
account=[
    {"姓名":"张三","账号":"123","密码":"666666","余额":5000},
    {"姓名":"李四","账号":"456","密码":"777777","余额":7000},
    {"姓名":"王五","账号":"789","密码":"888888","余额":6500}
    ]


#定义一个账户信息的输出函数
def showaccount(i):
    '''
    账户信息输出
    '''    
    print("|{0:<5}|{1:<10}|{2:<15}|".format("账号","姓名","余额"))
    print("="*40)
    print("|{0:<7}|{1:<10}|{2:<17}|".format(account[i]["账号"],account[i]["姓名"],account[i]["余额"]))
    

    
#登陆初始界面
print("="*12,"欢迎使用ATM机","="*13)
print("请插入银行卡")
No = input("请输入密码：")
print("="*40)

#判断账号
for i in range(len(account)):
    if No == account[i]["密码"]:                         #登陆成功
         print("hello  {}".format(account[i]["姓名"]))
      
         while True:
           #输出初始界面
           print("="*12,"欢迎使用ATM机","="*13)
           print("{0:1}{1:13}{2:18}".format(" ","1.查询卡片余额","2.选择存款操作"))
           print("{0:1}{1:13}{2:18}".format(" ","3.选择取款操作","4.退出系统"))
           print("="*40)
           key = input("请选择对应的操作：")

           #根据键盘值，判断并执行对应的操作
           if key == "1":
               print("="*12,"账户余额显示","="*14)
               showaccount(i)                                   #调用自定义函数
               input("按回车键继续：")
           elif key == "2":
               a=input("请输入存款金额：")                         
               account[i]["余额"]+=int(a)                       #根据输入金额修改余额  
               print("="*12,a+"元已成功存入","="*14)
               input("按回车键继续：")
           elif key == "3":
               a=input("请输入取款金额：")
               if account[i]["余额"] >= int(a):                 #取款判断余额
                   account[i]["余额"]-=int(a)                         
                   print("="*12,a+"元已成功取出","="*14)
               else:
                   print("余额不足，请重新输入")
               input("按回车键继续：")
           elif key == "4":
               print("="*12,"欢迎再来！","="*16)
               break
           else:
               print("="*12,"请您选择操作","="*13)

#退卡
print("请取回卡片")



     




